/**
  * Author: Mei
  * Date: 2020-12-25 9:36
  * Description: 条件变量的使用
  * wait函数中会释放mutex，而lock_guard这时还拥有mutex，他指挥在出了作用域之后才会释放mutex
  * ,所以这时它不会释放，但执行wait时会提前释放mutex
  *
  * wait提前释放锁之后会处于等待状态，在被notify_one和notify_all唤醒之后会先获取mutex，
  * 这相当于lock_guard的mutex在释放之后又获取到了
  */
#include "head.h"

using namespace std;

condition_variable con;
mutex mu;

int main() {
    unique_lock<mutex> lock(mu);
    con.wait(lock, [](){ //为false会继续等待
        return false;
    });
    cout << "show time" << endl;

    return 0;
}